{
  "extends": [
    "airbnb-typescript",
    "airbnb/hooks",
    "plugin:@typescript-eslint/eslint-recommended",
    "plugin:@typescript-eslint/recommended",
    "prettier"
  ],
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaFeatures": {
      "jsx": true
    },
    "ecmaVersion": 9,
    "project": "tsconfig.json",
    "sourceType": "module"
  },
  "env": {
    "browser": true,
    "es6": true
  },
  "plugins": [
    "eslint-plugin-import-helpers",
    "jsx-a11y",
    "react",
    "react-hooks"
  ],
  "settings": {
    "react": {
      "version": "detect"
    }
  },
  "rules": {
    "no-underscore-dangle": "off",
    "@typescript-eslint/ban-ts-comment": "off",
    "@typescript-eslint/dot-notation": "off",
    "@typescript-eslint/explicit-module-boundary-types": "off",
    "@typescript-eslint/no-empty-interface": [
      "error",
      {
        "allowSingleExtends": true
      }
    ],
    "react/self-closing-comp": "off",
    "@typescript-eslint/no-explicit-any": "off",
    "@typescript-eslint/no-unused-expressions": "off",
    "@typescript-eslint/no-shadow": "off",
    "@typescript-eslint/no-unused-vars": "warn",
    "comma-dangle": "off",
    "no-return-assign": "warn",
    "consistent-return": "off",
    "eol-last": "error",
    "import/extensions": "off",
    "global-require": "off",
    "import/no-extraneous-dependencies": "off",
    "import/no-cycle": "off",
    "import-helpers/order-imports": [
      "error",
      {
        "alphabetize": {
          "ignoreCase": true,
          "order": "asc"
        },
        "groups": [
          "/^react/",
          "/^@src/",
          "/^@shared/",
          "module",
          ["parent", "sibling", "index"]
        ],

        "newlinesBetween": "always"
      }
    ],
    "import/prefer-default-export": "off",
    "max-len": [
      "error",
      {
        "code": 120
      }
    ],
    "no-multiple-empty-lines": [
      "error",
      {
        "max": 1
      }
    ],
    "no-param-reassign": "off",
    "no-trailing-spaces": "error",
    "quotes": ["error", "single"],
    "react-hooks/exhaustive-deps": "off",
    "react/destructuring-assignment": [
      "warn",
      "always",
      {
        "ignoreClassFields": true
      }
    ],
    "react/jsx-props-no-spreading": ["off"],
    "react/jsx-sort-props": [
      "error",
      {
        "ignoreCase": true
      }
    ],
    "react/jsx-uses-react": "off",
    "react/prop-types": "off",
    "react/react-in-jsx-scope": "off",
    "react/state-in-constructor": ["error", "never"],
    "semi": "error",
    "sort-imports": [
      "error",
      {
        "ignoreCase": true,
        "ignoreDeclarationSort": true
      }
    ],
    "jsx-a11y/anchor-is-valid": "off",
    "jsx-a11y/media-has-caption": "off",
    "jsx-a11y/click-events-have-key-events": "off",
    "jsx-a11y/no-noninteractive-element-interactions": "off",
    "jsx-a11y/no-static-element-interactions": "off",
    "react/require-default-props": "off"
  },
  "ignorePatterns": ["vite.config.ts"]
}
